package com.imc.platform.base.notice.service;

import com.github.pagehelper.PageInfo;
import com.imc.platform.base.category.pojo.Category;
import com.imc.platform.base.notice.pojo.Notice;
import com.imc.platform.base.notice.pojo.NoticeAttach;
import com.imc.platform.base.notice.pojo.NoticeSend;

import java.util.List;
import java.util.Map;

/**
 * 方法描述: 公告业务类
 * SJC 2018-8-16 10:06:53
 *
*/
public interface INoticeService {

    PageInfo<Notice> queryNotice(int pageNum, int pageSize);

    void addNoticeTitle(Notice nt);

    Notice queryOrderAndLeave(Map<String,Object>parms);

    /**
     * 方法描述：新增公告附件
     * SJC 2018-8-26 17:04:26
     *
     */
    int addNoticeAttach(NoticeAttach na);



    /**
     * 方法描述：添加公告内容
     * SJC 2018-8-26 17:04:26
     *
     */
    int updateNoticeContent(String ntId, String contentDetail,List<String> memberList,String userId);

    /**
     * 方法描述：修改公告
     * SJC 2018-8-26 17:04:26
     *
     */
    int updateNotice(Notice notice);




    /**
     * 方法描述:获取图片列表
     * SJC 2018-9-3 21:42:33
     *
     */
    List<NoticeAttach> queryNoticeAttachList(String ntId);



    /**
     * 方法描述:根据id获取公告
     * SJC 2018-9-4 10:39:58
     *
    */
    Notice queryNoticeById(String ntId);


    /**
     * 方法描述:删除附件
     * SJC 2018-9-4 17:21:36
     *
     */
    int delNoticeAttach(String ntId,String imgName);

    /**
     * 方法描述:删除公告
     * SJC 2018-9-4 21:53:49
     *
    */
    int delNotice(String ntId);


    /**
     * 方法描述:根据类型查询公告列表信息
     * SJC 2018-9-11 16:25:24
     *
    */
    List<Map<String,Object>> queryNoticeList(String noticeType);


    /**
     * 方法描述:查询所有类别
     * SJC 2018-9-13 16:34:30
     *
     */
    List<Category> queryCategory();

    /**
     * 方法描述:插入新增发送公告人员
     * SJC 2018-9-13 20:08:04
     *
    */
    int insertNoticeSend(String noticeId,String sendId,List<String> memberList);

    /**
     * 方法描述:查询已经发送的用户
     * SJC 2018-9-14 15:41:53
     *
    */
    List<String> querySendMember(String noticeId,String senderId);

    /**
     * 方法描述:根据公告id获取所有已经发送的用户
     * SJC 2018-9-14 17:31:58
     *
    */
    List<Map<String,Object>> queryReceivers(String noticeId);

    List queryNoticeListByTypeAndId(Map<String,Object>parms);

    Object queryNoticeDetByTypeAndId(Map<String,Object>parms);

    List<Category>querySelectCatList();
}
